﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace RMS.Model
{
    // TODO: Revise it
    public enum UserType { PublicPerson, Director, Teacher, Secretary, Student };

    public class User
    {
        private int _userId;
        private string _userName;
        //private string _password;
        private string _firstName;
        private string _lastName;
        private DateTime _dateOfBirth;
        private string _address;
        private string _phoneNumber;
        private UserType _authority;

        public User() { }
        public User(int id, string username, /*string password,*/ string firstName, string lastName, UserType authority, DateTime dateOfBirth, string address = "P. Sherman 42, Wallaby Way", string phoneNumber = "07XX-123456")
        {
            this._userId = id;
            this._userName = username;
            //this._password = password;
            this._firstName = firstName;
            this._lastName = lastName;
            this._authority = authority;
            this._dateOfBirth = dateOfBirth;
            this._address = address;
            this._phoneNumber = phoneNumber;
        }

        public int Id
        {
            get { return this._userId; }
            set { this._userId = value; }
        }
        public string Username
        {
            get { return this._userName; }
            set { this._userName = value; }
        }
        public string FirstName
        {
            get { return this._firstName; }
            set { this._firstName = value; }
        }
        public string LastName
        {
            get { return this._lastName; }
            set { this._lastName = value; }
        }
        public UserType Authority
        {
            get { return this._authority; }
            set { this._authority = value; }
        }
        public DateTime DateOfBirth
        {
            get { return this._dateOfBirth; }
            set { this._dateOfBirth = value; }
        }
        public string Address
        {
            get { return this._address; }
            set { this._address = value; }
        }
        public string PhoneNumber
        {
            get { return this._phoneNumber; }
            set { this._phoneNumber = value; }
        }
    }
}
